Different types of network traffic have different sensitivity to network performance. With regard to latency, large file transfers may be relatively unaffected by moderate increases in the latency of a connection. By contrast, interactive traffic, such as VoIP, remote procedure calls, media streaming, application streaming, and remote application execution, may be dramatically affected by changes in latency which lead to slower application response times.
Existing quality of service (QoS) systems may attempt to prioritize interactive traffic to reduce latency, but may face several difficulties. First, bandwidth-allocation methods of QoS may ensure that a certain amount of interactive traffic has the bandwidth to pass through a network, but the bandwidth allocation may have no guarantee of latency. Second, interactive traffic may be difficult to identify. Many ports and applications carry a mix of interactive, streaming, and bulk traffic. Thus, simply prioritizing packets based on a port or underlying application may not properly identify latency sensitive traffic. There exists a need for methods of identifying and prioritizing network traffic based on the latency sensitivity of the traffic.
An additional potential cause of latency with respect to interactive or streaming traffic is dropped packets. Dropped packets can impose additional costs on traffic containing, such as interactive or streaming traffic, which may contain significant gaps between transmitted packets. Where these gaps occur, a receiver may not be able to identify if a packet immediately preceding the gap was lost since there are no subsequent packets to inform the receiver that the last packet existed. Many protocols, such as TCP, may use a retransmission timeout (RTO) to discover and correct cases such as this where the last packet of a group has been dropped. However, RTOs may provide only coarse control over delays induced by packet losses. In some protocols, RTOs can be very expensive, such as TCP, where the RTO is by default a full second. There exists a need for methods of avoiding these retransmission timeouts to improve connection performance.
Further, in many protocols, including, for example, TCP, use retransmissions as one means for providing a reliable data stream. In addition to standard retransmission delays, extra delays may be incurred when a retransmitted packet is also dropped. In some cases, the dropping of a retransmitted packet may cause a delay equal to a full round trip time. This delay may have severe effects on time-sensitive network traffic. Thus, there exists a need for systems and methods for mitigating or avoiding the delay caused by dropped retransmissions.